//
// IUT de Nice / Departement informatique / Module APO-C++
// Annee 2011_2012 - Package _Banque
//
// Classe CompteBancaire : gestion des comptes de tout titulaire
//
// Edition A      : TP_8
//
//    + Version 1.0.0   : version initiale 
//
// Auteur : A. Thuaire
//
#ifndef _Titulaire_
#include "..\Titulaire\Titulaire.h"
#endif

#ifndef _OperationBancaire_
#include "..\OperationBancaire\OperationBancaire.h"
#endif

#ifndef _Collection_
#include "..\..\_Maths\Collection\Collection.h"
#endif

#define _CompteBancaire_

class CompteBancaire {
private :
Titulaire   m_titulaire;
int         m_numero;
float       m_solde;
Collection  m_Operations;     // Historique des operations

protected :
virtual CompteBancaire& operator -=(float);
virtual CompteBancaire& operator +=(float);

public :
// ------ Constructeurs et destructeur
//
CompteBancaire();
CompteBancaire(const Titulaire&);
CompteBancaire(CompteBancaire&) {throw -3.1;}

// ------ Accesseurs
//
Titulaire&   titulaireCompte();
char*        identiteTitulaire();
char*        adresseTitulaire();
long int     numeroCompte();
float        soldeCompte();
int          nombreOperations();
char*        dateDerniereOperation();

void  modifierAdresse (char *);

// ------ Services
//
float executer(char, char*, float);

char*  toString();

};


